import 'package:flutter/material.dart';

main() => runApp(MyApp());

/* 
* Widget
* 有状态的Widget：StatefulWidget 运行中有一些状态（data）需要改变
* 无状态的Widget: StatelessWidget 内容是确定的，没有数据的改变
 */
class MyApp extends StatelessWidget {
  // build
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        // Scaffold 脚手架
        debugShowCheckedModeBanner: false,
        home: GLHomePage());
  }
}

class GLHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: const Text('首页'),
        ),
        body: GLContentBody());
  }
}

// StatefulWidget:继承自StatefulWidget的类（可以接受父Widget传过来的数据）/State类（状态）
// flag 状态
// StatefulWidget 不能定义状态 （看源码） => 创建一个单独的类，这个类负责管理状态
class GLContentBody extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return GLContentBodyState();
  }
}

class GLContentBodyState extends State<GLContentBody> {
  var flag = true;

  @override
  Widget build(BuildContext context) {
    return Center(
      child: Row(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Checkbox(
              value: flag,
              onChanged: (value) {
                setState(() {
                  // 监听状态改变， 跟RN一样
                  flag = value!;
                });
              }),
          Text("用户协议", style: TextStyle(fontSize: 20))
        ],
      ),
    );
  }
}
